//加载数据库
let mysql = require("mysql");
//配置mysql数据库
let config = {
    host: "localhost",//数据库连接服务
    port: 3306,//数据库端口
    user: "root",//数据库用户名
    password: "root",//数据库密码
    database: "student",//选择要操作的库房
}

//定义类型
class Db {
    //定义构造方法
    constructor() {
        //当前对象下新增属性名为connection
        this.connection = mysql.createConnection(config);

        //判断是否连接成功
        this.connection.connect((err) => {
            if (err) {
                console.log("连接数据库失败")
            } else {
                console.log("数据库连接成功")
            }
        })
    }

    //定义成员方法，执行sql语句
    //sql 携带实参
    query(sql) {
        let p = new Promise((resolve, reject) => {
            this.connection.query(sql, (err, doc) => {
                if (err) {
                    //返回失败的状态
                    reject([err, null])
                } else {
                    //返回成功状态
                    resolve([null, doc])
                }
            })
        })
        return p;
    }
}

//实例化类
let db = new Db();

// async function fn() {
//     let sql = `select * from stu_user`;
//     try {
//         let a = await db.query(sql);
//         console.log(a);
//     } catch (err) {
//         console.log(err);
//     }
// }
// fn()
//暴露模块
module.exports = db;